home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / include / user / sys / RCS / ioctl.h,v < prev    next >
Encoding:
Text File  |  1992-07-17  |  14.2 KB  |  377 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  srv030:1.3 srv027:1.3 srv026:1.3 srv024:1.3 srv021:1.3 srv019:1.3 srv018:1.3 srv016:1.3 srv014:1.3 srv010:1.3 srv008:1.3 srv007:1.3 srv006:1.3 srv005:1.3 srv004:1.3 srv003:1.3 srv002:1.3 srv001:1.3;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     92.04.02.18.45.50;  author kupfer;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     91.12.12.22.27.49;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     91.12.08.15.13.23;  author kupfer;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @Re-enable tty include's.
  32. @
  33. text
  34. @/*
  35.  * Copyright (c) 1982, 1986 Regents of the University of California.
  36.  * All rights reserved.  The Berkeley software License Agreement
  37.  * specifies the terms and conditions for redistribution.
  38.  *
  39.  *    @@(#)ioctl.h    7.6 (Berkeley) 12/18/87
  40.  * $Header: /user5/kupfer/spriteserver/include/user/sys/RCS/ioctl.h,v 1.2 91/12/12 22:27:49 kupfer Exp Locker: kupfer $
  41.  */
  42.  
  43. #ifndef    _IOCTL
  44. #define    _IOCTL
  45.  
  46. #ifndef _TTYCHARS
  47. #include <sys/ttychars.h>
  48. #endif
  49. #ifndef TTYDEV
  50. #include <sys/ttydev.h>
  51. #endif
  52.  
  53. #ifndef _FBDEV
  54. #include <sys/fb.h>
  55. #endif
  56.  
  57. #include <cfuncproto.h>
  58.  
  59. /*
  60.  * Ioctl definitions
  61.  */
  62.  
  63. struct tchars {
  64.     char    t_intrc;    /* interrupt */
  65.     char    t_quitc;    /* quit */
  66.     char    t_startc;    /* start output */
  67.     char    t_stopc;    /* stop output */
  68.     char    t_eofc;        /* end-of-file */
  69.     char    t_brkc;        /* input delimiter (like nl) */
  70. };
  71. struct ltchars {
  72.     char    t_suspc;    /* stop process signal */
  73.     char    t_dsuspc;    /* delayed stop process signal */
  74.     char    t_rprntc;    /* reprint line */
  75.     char    t_flushc;    /* flush output (toggles) */
  76.     char    t_werasc;    /* word erase */
  77.     char    t_lnextc;    /* literal next character */
  78. };
  79.  
  80. /*
  81.  * Structure for TIOCGETP and TIOCSETP ioctls.
  82.  */
  83.  
  84. #ifndef _SGTTYB_
  85. #define    _SGTTYB_
  86. struct sgttyb {
  87.     char    sg_ispeed;        /* input speed */
  88.     char    sg_ospeed;        /* output speed */
  89.     char    sg_erase;        /* erase character */
  90.     char    sg_kill;        /* kill character */
  91.     short    sg_flags;        /* mode flags */
  92. };
  93. #endif
  94.  
  95. /*
  96.  * Window/terminal size structure.
  97.  * This information is stored by the kernel
  98.  * in order to provide a consistent interface,
  99.  * but is not used by the kernel.
  100.  *
  101.  * Type must be "unsigned short" so that types.h not required.
  102.  */
  103. struct winsize {
  104.     unsigned short    ws_row;            /* rows, in characters */
  105.     unsigned short    ws_col;            /* columns, in characters */
  106.     unsigned short    ws_xpixel;        /* horizontal size, pixels */
  107.     unsigned short    ws_ypixel;        /* vertical size, pixels */
  108. };
  109.  
  110. /*
  111.  * Pun for SUN.
  112.  */
  113. struct ttysize {
  114.     unsigned short    ts_lines;
  115.     unsigned short    ts_cols;
  116.     unsigned short    ts_xxx;
  117.     unsigned short    ts_yyy;
  118. };
  119. #define    TIOCGSIZE    TIOCGWINSZ
  120. #define    TIOCSSIZE    TIOCSWINSZ
  121.  
  122. #ifndef _IO
  123. /*
  124.  * Ioctl's have the command encoded in the lower word,
  125.  * and the size of any in or out parameters in the upper
  126.  * word.  The high 3 bits of the upper word are used
  127.  * to encode the in/out status of the parameter.
  128.  */
  129. #define    IOCPARM_MASK    0x1fff        /* parameter length, at most 13 bits */
  130. #define    IOCPARM_LEN(x)    (((x) >> 16) & IOCPARM_MASK)
  131. #define    IOCPARM_MAX    NBPG        /* max size of ioctl, mult. of NBPG */
  132. #define    IOC_VOID    0x20000000    /* no parameters */
  133. #define    IOC_OUT        0x40000000    /* copy out parameters */
  134. #define    IOC_IN        0x80000000    /* copy in parameters */
  135. #define    IOC_INOUT    (IOC_IN|IOC_OUT)
  136. #define    IOC_DIRMASK    0xe0000000    /* mask for IN/OUT/VOID */
  137. /* the 0x20000000 is so we can distinguish new ioctl's from old */
  138. #define    _IO(x,y)    ((int) (IOC_VOID|(x<<8)|y))
  139. #define    _IOR(x,y,t)    ((int) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
  140. #define    _IOW(x,y,t)    ((int) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
  141. /* this should be _IORW, but stdio got there first */
  142. #define    _IOWR(x,y,t)    ((int) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y))
  143. #endif
  144.  
  145. /*
  146.  * tty ioctl commands
  147.  */
  148. #define    TIOCGETD    _IOR('t', 0, int)        /* get line discipline */
  149. #define    TIOCSETD    _IOW('t', 1, int)        /* set line discipline */
  150. #define    TIOCHPCL    _IO('t', 2)        /* hang up on last close */
  151. #define    TIOCMODG    _IOR('t', 3, int)        /* get modem control state */
  152. #define    TIOCMODS    _IOW('t', 4, int)        /* set modem control state */
  153. #define        TIOCM_LE    0001        /* line enable */
  154. #define        TIOCM_DTR    0002        /* data terminal ready */
  155. #define        TIOCM_RTS    0004        /* request to send */
  156. #define        TIOCM_ST    0010        /* secondary transmit */
  157. #define        TIOCM_SR    0020        /* secondary receive */
  158. #define        TIOCM_CTS    0040        /* clear to send */
  159. #define        TIOCM_CAR    0100        /* carrier detect */
  160. #define        TIOCM_CD    TIOCM_CAR
  161. #define        TIOCM_RNG    0200        /* ring */
  162. #define        TIOCM_RI    TIOCM_RNG
  163. #define        TIOCM_DSR    0400        /* data set ready */
  164. #define    TIOCGETP    _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
  165. #define    TIOCSETP    _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
  166. #define    TIOCSETN    _IOW('t',10,struct sgttyb)/* as above, but no flushtty */
  167. #define    TIOCEXCL    _IO('t', 13)        /* set exclusive use of tty */
  168. #define    TIOCNXCL    _IO('t', 14)        /* reset exclusive use of tty */
  169. #define    TIOCFLUSH    _IOW('t', 16, int)    /* flush buffers */
  170. #define    TIOCSETC    _IOW('t',17,struct tchars)/* set special characters */
  171. #define    TIOCGETC    _IOR('t',18,struct tchars)/* get special characters */
  172. #define        TANDEM        0x00000001    /* send stopc on out q full */
  173. #define        CBREAK        0x00000002    /* half-cooked mode */
  174. #define        LCASE        0x00000004    /* simulate lower case */
  175. #define        ECHO        0x00000008    /* echo input */
  176. #define        CRMOD        0x00000010    /* map \r to \r\n on output */
  177. #define        RAW        0x00000020    /* no i/o processing */
  178. #define        ODDP        0x00000040    /* get/send odd parity */
  179. #define        EVENP        0x00000080    /* get/send even parity */
  180. #define        ANYP        0x000000c0    /* get any parity/send none */
  181. #define        NLDELAY        0x00000300    /* \n delay */
  182. #define            NL0    0x00000000
  183. #define            NL1    0x00000100    /* tty 37 */
  184. #define            NL2    0x00000200    /* vt05 */
  185. #define            NL3    0x00000300
  186. #define        TBDELAY        0x00000c00    /* horizontal tab delay */
  187. #define            TAB0    0x00000000
  188. #define            TAB1    0x00000400    /* tty 37 */
  189. #define            TAB2    0x00000800
  190. #define        XTABS        0x00000c00    /* expand tabs on output */
  191. #define        CRDELAY        0x00003000    /* \r delay */
  192. #define            CR0    0x00000000
  193. #define            CR1    0x00001000    /* tn 300 */
  194. #define            CR2    0x00002000    /* tty 37 */
  195. #define            CR3    0x00003000    /* concept 100 */
  196. #define        VTDELAY        0x00004000    /* vertical tab delay */
  197. #define            FF0    0x00000000
  198. #define            FF1    0x00004000    /* tty 37 */
  199. #define        BSDELAY        0x00008000    /* \b delay */
  200. #define            BS0    0x00000000
  201. #define            BS1    0x00008000
  202. #define        ALLDELAY    (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
  203. #define        CRTBS        0x00010000    /* do backspacing for crt */
  204. #define        PRTERA        0x00020000    /* \ ... / erase */
  205. #define        CRTERA        0x00040000    /* " \b " to wipe out char */
  206. #define        TILDE        0x00080000    /* hazeltine tilde kludge */
  207. #define        MDMBUF        0x00100000    /* start/stop output on carrier intr */
  208. #define        LITOUT        0x00200000    /* literal output */
  209. #define        TOSTOP        0x00400000    /* SIGSTOP on background output */
  210. #define        FLUSHO        0x00800000    /* flush output to terminal */
  211. #define        NOHANG        0x01000000    /* no SIGHUP on carrier drop */
  212. #define        L001000        0x02000000
  213. #define        CRTKIL        0x04000000    /* kill line with " \b " */
  214. #define        PASS8        0x08000000
  215. #define        CTLECH        0x10000000    /* echo control chars as ^X */
  216. #define        PENDIN        0x20000000    /* tp->t_rawq needs reread */
  217. #define        DECCTQ        0x40000000    /* only ^Q starts after ^S */
  218. #define        NOFLSH        0x80000000    /* no output flush on signal */
  219. /* locals, from 127 down */
  220. #define    TIOCLBIS    _IOW('t', 127, int)    /* bis local mode bits */
  221. #define    TIOCLBIC    _IOW('t', 126, int)    /* bic local mode bits */
  222. #define    TIOCLSET    _IOW('t', 125, int)    /* set entire local mode word */
  223. #define    TIOCLGET    _IOR('t', 124, int)    /* get local modes */
  224. #define        LCRTBS        (CRTBS>>16)
  225. #define        LPRTERA        (PRTERA>>16)
  226. #define        LCRTERA        (CRTERA>>16)
  227. #define        LTILDE        (TILDE>>16)
  228. #define        LMDMBUF        (MDMBUF>>16)
  229. #define        LLITOUT        (LITOUT>>16)
  230. #define        LTOSTOP        (TOSTOP>>16)
  231. #define        LFLUSHO        (FLUSHO>>16)
  232. #define        LNOHANG        (NOHANG>>16)
  233. #define        LCRTKIL        (CRTKIL>>16)
  234. #define        LPASS8        (PASS8>>16)
  235. #define        LCTLECH        (CTLECH>>16)
  236. #define        LPENDIN        (PENDIN>>16)
  237. #define        LDECCTQ        (DECCTQ>>16)
  238. #define        LNOFLSH        (NOFLSH>>16)
  239. #define    TIOCSBRK    _IO('t', 123)        /* set break bit */
  240. #define    TIOCCBRK    _IO('t', 122)        /* clear break bit */
  241. #define    TIOCSDTR    _IO('t', 121)        /* set data terminal ready */
  242. #define    TIOCCDTR    _IO('t', 120)        /* clear data terminal ready */
  243. #define    TIOCGPGRP    _IOR('t', 119, int)    /* get pgrp of tty */
  244. #define    TIOCSPGRP    _IOW('t', 118, int)    /* set pgrp of tty */
  245. #define    TIOCSLTC    _IOW('t',117,struct ltchars)/* set local special chars */
  246. #define    TIOCGLTC    _IOR('t',116,struct ltchars)/* get local special chars */
  247. #define    TIOCOUTQ    _IOR('t', 115, int)    /* output queue size */
  248. #define    TIOCSTI        _IOW('t', 114, char)    /* simulate terminal input */
  249. #define    TIOCNOTTY    _IO('t', 113)        /* void tty association */
  250. #define    TIOCPKT        _IOW('t', 112, int)    /* pty: set/clear packet mode */
  251. #define        TIOCPKT_DATA        0x00    /* data packet */
  252. #define        TIOCPKT_FLUSHREAD    0x01    /* flush packet */
  253. #define        TIOCPKT_FLUSHWRITE    0x02    /* flush packet */
  254. #define        TIOCPKT_STOP        0x04    /* stop output */
  255. #define        TIOCPKT_START        0x08    /* start output */
  256. #define        TIOCPKT_NOSTOP        0x10    /* no more ^S, ^Q */
  257. #define        TIOCPKT_DOSTOP        0x20    /* now do ^S ^Q */
  258. #define    TIOCSTOP    _IO('t', 111)        /* stop output, like ^S */
  259. #define    TIOCSTART    _IO('t', 110)        /* start output, like ^Q */
  260. #define    TIOCMSET    _IOW('t', 109, int)    /* set all modem bits */
  261. #define    TIOCMBIS    _IOW('t', 108, int)    /* bis modem bits */
  262. #define    TIOCMBIC    _IOW('t', 107, int)    /* bic modem bits */
  263. #define    TIOCMGET    _IOR('t', 106, int)    /* get all modem bits */
  264. #define    TIOCREMOTE    _IOW('t', 105, int)    /* remote input editing */
  265. #define    TIOCGWINSZ    _IOR('t', 104, struct winsize)    /* get window size */
  266. #define    TIOCSWINSZ    _IOW('t', 103, struct winsize)    /* set window size */
  267. #define    TIOCUCNTL    _IOW('t', 102, int)    /* pty: set/clr usr cntl mode */
  268. #define        UIOCCMD(n)    _IO('u', n)        /* usr cntl op "n" */
  269. #define    TIOCCONS    _IO('t', 98)        /* become virtual console */
  270. #define    TCGETP        _IOR('t', 85,struct termios)/* get parameters */
  271.  
  272. #define    OTTYDISC    0        /* old, v7 std tty driver */
  273. #define    NETLDISC    1        /* line discip for berk net */
  274. #define    NTTYDISC    2        /* new tty discipline */
  275. #define    TABLDISC    3        /* tablet discipline */
  276. #define    SLIPDISC    4        /* serial IP discipline */
  277.  
  278. #define    FIOCLEX        _IO('f', 1)        /* set close on exec on fd */
  279. #define    FIONCLEX    _IO('f', 2)        /* remove close on exec */
  280. /* another local */
  281. #define    FIONREAD    _IOR('f', 127, int)    /* get # bytes to read */
  282. #define    FIONBIO        _IOW('f', 126, int)    /* set/clear non-blocking i/o */
  283. #define    FIOASYNC    _IOW('f', 125, int)    /* set/clear async i/o */
  284. #define    FIOSETOWN    _IOW('f', 124, int)    /* set owner */
  285. #define    FIOGETOWN    _IOR('f', 123, int)    /* get owner */
  286.  
  287. /* socket i/o controls */
  288. #define    SIOCSHIWAT    _IOW('s',  0, int)        /* set high watermark */
  289. #define    SIOCGHIWAT    _IOR('s',  1, int)        /* get high watermark */
  290. #define    SIOCSLOWAT    _IOW('s',  2, int)        /* set low watermark */
  291. #define    SIOCGLOWAT    _IOR('s',  3, int)        /* get low watermark */
  292. #define    SIOCATMARK    _IOR('s',  7, int)        /* at oob mark? */
  293. #define    SIOCSPGRP    _IOW('s',  8, int)        /* set process group */
  294. #define    SIOCGPGRP    _IOR('s',  9, int)        /* get process group */
  295.  
  296. #define    SIOCADDRT    _IOW('r', 10, struct rtentry)    /* add route */
  297. #define    SIOCDELRT    _IOW('r', 11, struct rtentry)    /* delete route */
  298.  
  299. #define    SIOCSIFADDR    _IOW('i', 12, struct ifreq)    /* set ifnet address */
  300. #define    SIOCGIFADDR    _IOWR('i',13, struct ifreq)    /* get ifnet address */
  301. #define    SIOCSIFDSTADDR    _IOW('i', 14, struct ifreq)    /* set p-p address */
  302. #define    SIOCGIFDSTADDR    _IOWR('i',15, struct ifreq)    /* get p-p address */
  303. #define    SIOCSIFFLAGS    _IOW('i', 16, struct ifreq)    /* set ifnet flags */
  304. #define    SIOCGIFFLAGS    _IOWR('i',17, struct ifreq)    /* get ifnet flags */
  305. #define    SIOCGIFBRDADDR    _IOWR('i',18, struct ifreq)    /* get broadcast addr */
  306. #define    SIOCSIFBRDADDR    _IOW('i',19, struct ifreq)    /* set broadcast addr */
  307. #define    SIOCGIFCONF    _IOWR('i',20, struct ifconf)    /* get ifnet list */
  308. #define    SIOCGIFNETMASK    _IOWR('i',21, struct ifreq)    /* get net addr mask */
  309. #define    SIOCSIFNETMASK    _IOW('i',22, struct ifreq)    /* set net addr mask */
  310. #define    SIOCGIFMETRIC    _IOWR('i',23, struct ifreq)    /* get IF metric */
  311. #define    SIOCSIFMETRIC    _IOW('i',24, struct ifreq)    /* set IF metric */
  312. #define SIOCRPHYSADDR   _IOWR('i',28, struct ifdevea)   /* Read phys. 
  313.                              * enet addr.*/
  314. #define    SIOCSARP    _IOW('i', 30, struct arpreq)    /* set arp entry */
  315. #define    SIOCGARP    _IOWR('i',31, struct arpreq)    /* get arp entry */
  316. #define    SIOCDARP    _IOW('i', 32, struct arpreq)    /* delete arp entry */
  317.  
  318. /* Graphics io controls for Ultrix on the DECStation 3100. */
  319. #define QIOCGINFO     _IOR('q', 1, DevScreenInfo *)    /* get the info     */
  320. #define QIOCPMSTATE    _IOW('q', 2, DevCursor)    /* set mouse pos */
  321. #define    QIOWCURSORCOLOR    _IOW('q', 3, unsigned int [6])    /* bg/fg r/g/b */
  322. #define QIOCINIT    _IO('q', 4)            /* init screen   */
  323. #define QIOCKPCMD    _IOW('q', 5, DevKpCmd)    /* keybd. per. cmd */
  324. #define QIOCADDR    _IOR('q', 6, DevScreenInfo *)    /* get address */
  325. #define    QIOWCURSOR    _IOW('q', 7, short[32])    /* write cursor bit map */
  326. #define QIOKERNLOOP    _IO('q', 8)   /*re-route kernel console output */
  327. #define QIOKERNUNLOOP    _IO('q', 9)   /*don't re-route kernel console output */
  328. #define QIOVIDEOON    _IO('q', 10)            /* turn on the video */
  329. #define    QIOVIDEOOFF    _IO('q', 11)            /* turn off the video */
  330. #define QIOSETCMAP      _IOW('q', 12, DevColorMap)
  331. #define QIOISCOLOR    _IOR('q', 13, int)    /* is it a color device? */
  332.  
  333. /* Graphics io controls for Sun frame buffers. */
  334. #define FBIOGTYPE _IOR('F', 0, struct fbtype)        /* get description */
  335. #define FBIOGPIXRECT _IOWR('F', 1, struct fbpixrect)    /* get pixrect */
  336. #define FBIOGINFO _IOR('F', 2, struct fbinfo)        /* get other info */
  337. #define FBIOPUTCMAP _IOW('F', 3, struct fbcmap)        /* set cmap */
  338. #define FBIOGETCMAP _IOW('F', 4, struct fbcmap)        /* get cmap */
  339. #define FBIOSATTR       _IOW('F', 5, struct fbsattr)    /* set attrs */
  340. #define FBIOGATTR       _IOR('F', 6, struct fbgattr)    /* get attrs */
  341. #define FBIOSVIDEO      _IOW('F', 7, int)        /* video control */
  342. #define FBIOGVIDEO      _IOR('F', 8, int)        /* video control */
  343. #define FBIOVERTICAL    _IOW('F', 9, int)        /* vert. retrace */
  344.  
  345. extern int ioctl _ARGS_((int fd, unsigned long cmd, ...));
  346.  
  347. #endif _IOCTL
  348. @
  349.  
  350.  
  351. 1.2
  352. log
  353. @Disable device-related declarations.
  354. @
  355. text
  356. @d7 1
  357. a7 1
  358.  * $Header: /r3/kupfer/spriteserver/include/user/sys/RCS/ioctl.h,v 1.1 91/12/08 15:13:23 kupfer Exp Locker: kupfer $
  359. a12 1
  360. #ifdef SPRITED_DEVICES
  361. a22 1
  362. #endif /* SPRITED_DEVICES */
  363. @
  364.  
  365.  
  366. 1.1
  367. log
  368. @Initial revision
  369. @
  370. text
  371. @d7 1
  372. a7 1
  373.  * $Header: /sprite/src/lib/include/sys/RCS/ioctl.h,v 1.11 91/08/19 22:24:56 shirriff Exp $
  374. d13 1
  375. d24 1
  376. @
  377.